import os
from binance.client import Client
from binance.enums import *
from binance.exceptions import BinanceAPIException, BinanceOrderException
api_key = os.environ.get('binance_api')
api_secret = os.environ.get('binance_secret')
client = Client(api_key, api_secret)
buy_limit = client.create_test_order(
symbol='BTCUSDT',
side='BUY',
type='LIMIT',
timeInForce='GTC',
quantity=0.01,
price=20000)
這邊我們用create_test_order()
的方法來建立測試訂單,我們可以確保語法是對的,而不會真正的建立此訂單。
如果確定好要建立交易訂單的話需要將程式碼改寫成:
buy_order = client.create_order(
symbol='BTCUSDT',
side='BUY',
type='MARKET',
quantity=0.01)
執行後就可以看到訂單已成交
有一點很重要的是quantity是你要購買幣種的數量,所以必須先自己換算,可以去看DAY 7的查詢價格怎麼使用,這邊我先做簡單的測試,假設使用者要用200 USDT去購買BTC,這樣就可以換算可以購買多少顆BTC。
嘗試著把quantity的值修改成比較合理的金額。
binance.exceptions.BinanceAPIException: APIError(code=-1013): QTY is over the symbol's maximum QTY.
如果出現下列錯誤請先登入幣安帳戶,到最一開始創建API金鑰的地方進行修改就可以了。
binance.exceptions.BinanceAPIException: APIError(code=-2015): Invalid API-key, IP, or permissions for action.
此範例是用BTCUSDT實作,如果要更改成其他幣種可能會收到API錯誤如下。幣安只允許和當前交易價格相差一定百分比的訂單。
binance.exceptions.BinanceAPIException: APIError(code=-1013): Filter failure: PERCENT_PRICE
請先到幣安的錢包查看要進行交易的幣餘額是否不足。
binance.exceptions.BinanceAPIException: APIError(code=-2010): Account has insufficient balance for requested action.